#ifndef __CROSSFIRE_ENGINE
#define __CROSSFIRE_ENGINE

#ifndef CR_DEFAULT_LOG_FILE
#define CR_DEFAULT_LOG_FILE "CFLog.html"
#endif

#ifndef CR_DEFAULT_SETTINGS_FILE
#define CR_DEFAULT_SETTINGS_FILE "Config.cfg"
#endif

class CF_CORE_API CCF_Engine
{
private:
  static CCF_Log* s_log;
  static CCF_Settings* s_settings;

protected:
  CCF_Window* m_rootWindow;
  CCF_Camera* m_camera;
  CCF_DrawRenderer* m_drawRenderer;
  CCF_Interface* m_interface;

  virtual void OnInit();
  virtual void OnTick( double delta );
  virtual void OnExit();

public:
  CCF_Engine(HINSTANCE instance);
  ~CCF_Engine(void);

  void Run();

  static CCF_Log* GetLog();
  static CCF_Settings* GetSettings();
};

#endif